package com.maxmlr.mybatisplus.common.config;

import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;

/**
 * 
 * @Package com.maxmlr.common.config
 * @ClassName MybatisPlusConfig
 * @Description MybatisPlus配置
 * @author max
 * @since 2018年12月15日 下午6:10:23 
 * @version 1.0
 * @Copyright Copyright (c) 2018: www.maxmlr.com.
 */
@Configuration
public class MybatisPlusConfig {
	
	/**
	 * @Title paginationInterceptor
	 * @Description mybatis-plus分页插件-文档：http://mp.baomidou.com
	 * @author max
	 * @since 2018年12月15日 下午6:10:48
	 * @return
	 */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        return paginationInterceptor;
    }

    /**
     * 相当于顶部的：
     * {@code @MapperScan("com.maxmlr.*.dao*")}
     * 这里可以扩展，比如使用配置文件来配置扫描Mapper的路径
     */
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
        scannerConfigurer.setBasePackage("com.maxmlr.mybatisplus.*.dao");
        return scannerConfigurer;
    }

    @Bean
    public H2KeyGenerator getH2KeyGenerator() {
        return new H2KeyGenerator();
    }


    /**
     * 性能分析拦截器，不建议生产使用
     */
    @Bean
    public PerformanceInterceptor performanceInterceptor(){
        return new PerformanceInterceptor();
    }
	
	
}
